{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Transformer Model\n",
    "In this notebook, we show an example of how Transformer can be used with darts.\n",
    "If you are new to darts, we recommend you first follow the [quick start](https://unit8co.github.io/darts/quickstart/00-quickstart.html) notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# fix python path if working locally\n",
    "from utils import fix_pythonpath_if_working_locally\n",
    "\n",
    "fix_pythonpath_if_working_locally()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import shutil\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from tqdm import tqdm_notebook as tqdm\n",
    "\n",
    "from tensorboardX import SummaryWriter\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from darts import TimeSeries\n",
    "from darts.dataprocessing.transformers import Scaler\n",
    "from darts.models import TransformerModel, ExponentialSmoothing\n",
    "from darts.metrics import mape\n",
    "from darts.utils.statistics import check_seasonality, plot_acf\n",
    "from darts.datasets import AirPassengersDataset, SunspotsDataset\n",
    "\n",
    "import warnings\n",
    "\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "import logging\n",
    "\n",
    "logging.disable(logging.CRITICAL)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Air Passengers Example"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we will test the performance of the transformer architecture on the 'air passengers' dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Read data:\n",
    "series = AirPassengersDataset().load().astype(np.float32)\n",
    "\n",
    "# Create training and validation sets:\n",
    "train, val = series.split_after(pd.Timestamp(\"19590101\"))\n",
    "\n",
    "# Normalize the time series (note: we avoid fitting the transformer on the validation set)\n",
    "# Change name\n",
    "scaler = Scaler()\n",
    "train_scaled = scaler.fit_transform(train)\n",
    "val_scaled = scaler.transform(val)\n",
    "series_scaled = scaler.transform(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"the 'air passengers' dataset has 144 data points\""
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"the 'air passengers' dataset has {} data points\".format(len(series))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We train a standard transformer architecture with default hyperparameters, tweaking only two of them:\n",
    "\n",
    "* _d\\_model_, the input dimensionality of the transformer architecture (*after* performing time series embedding). Its default value is 512. We lower the value from 512 to 64, since it is hard to learn such an high-dimensional representation from an univariate time series\n",
    "* _nhead_, the number of heads in the multi-head attention mechanism. We increase the value from 8 to 32. This means that we compute multi-head attention with 32 heads of size _d\\_model_/_nhead_=64/32=2 each. This way, we obtain low-dimensional heads that are hopefully suitable to learn from univariate time series\n",
    "\n",
    "The goal is to perform one-step forecasting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "my_model = TransformerModel(\n",
    "    input_chunk_length=12,\n",
    "    output_chunk_length=1,\n",
    "    batch_size=32,\n",
    "    n_epochs=200,\n",
    "    model_name=\"air_transformer\",\n",
    "    nr_epochs_val_period=10,\n",
    "    d_model=16,\n",
    "    nhead=8,\n",
    "    num_encoder_layers=2,\n",
    "    num_decoder_layers=2,\n",
    "    dim_feedforward=128,\n",
    "    dropout=0.1,\n",
    "    activation=\"relu\",\n",
    "    random_state=42,\n",
    "    save_checkpoints=True,\n",
    "    force_reset=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false,
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2f9a2a1d3b8c4b33a99279fb2373d78b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/200 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training loss: 0.0046, validation loss: 0.0273, best val loss: 0.0126\r"
     ]
    }
   ],
   "source": [
    "my_model.fit(series=train_scaled, val_series=val_scaled, verbose=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at the predictions on the validation set."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, by using the \"current\" model - i.e., the model at the end of the training procedure:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# this function evaluates a model on a given validation set for n time-steps\n",
    "def eval_model(model, n, series, val_series):\n",
    "    pred_series = model.predict(n=n)\n",
    "    plt.figure(figsize=(8, 5))\n",
    "    series.plot(label=\"actual\")\n",
    "    pred_series.plot(label=\"forecast\")\n",
    "    plt.title(\"MAPE: {:.2f}%\".format(mape(pred_series, val_series)))\n",
    "    plt.legend()\n",
    "\n",
    "\n",
    "eval_model(my_model, 26, series_scaled, val_scaled)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then, by using the best model obtained over training, according to validation loss:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "best_model = TransformerModel.load_from_checkpoint(\n",
    "    model_name=\"air_transformer\", best=True\n",
    ")\n",
    "eval_model(best_model, 26, series_scaled, val_scaled)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's backtest our `Transformer` model to evaluates its performance at a forecast horizon of 6 months:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2fb9d97d905246dba0903dfa6b2e19b9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/19 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "backtest_series = my_model.historical_forecasts(\n",
    "    series=series_scaled,\n",
    "    start=pd.Timestamp(\"19590101\"),\n",
    "    forecast_horizon=6,\n",
    "    retrain=False,\n",
    "    verbose=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MAPE: 11.13%\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 5))\n",
    "series_scaled.plot(label=\"actual\", lw=2)\n",
    "backtest_series.plot(label=\"backtest\", lw=2)\n",
    "plt.legend()\n",
    "plt.title(\"Backtest, starting Jan 1959, with a 6-months horizon\")\n",
    "print(\n",
    "    \"MAPE: {:.2f}%\".format(\n",
    "        mape(\n",
    "            scaler.inverse_transform(series_scaled),\n",
    "            scaler.inverse_transform(backtest_series),\n",
    "        )\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Monthly Sun spots Example"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, let's test the transformer architecture on a more complex dataset, the 'monthly sunspots'. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "series_sunspot = SunspotsDataset().load().astype(np.float32)\n",
    "\n",
    "series_sunspot.plot()\n",
    "check_seasonality(series_sunspot, max_lag=240)\n",
    "\n",
    "train_sp, val_sp = series_sunspot.split_after(pd.Timestamp(\"19401001\"))\n",
    "\n",
    "scaler_sunspot = Scaler()\n",
    "train_sp_scaled = scaler_sunspot.fit_transform(train_sp)\n",
    "val_sp_scaled = scaler_sunspot.transform(val_sp)\n",
    "series_sp_scaled = scaler_sunspot.transform(series_sunspot)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"the 'monthly sun spots' dataset has 2820 data points\""
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"the 'monthly sun spots' dataset has {} data points\".format(len(series_sunspot))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, let's perform one-step ahead forecasting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_model_sp = TransformerModel(\n",
    "    batch_size=32,\n",
    "    input_chunk_length=125,\n",
    "    output_chunk_length=36,\n",
    "    n_epochs=20,\n",
    "    model_name=\"sun_spots_transformer\",\n",
    "    nr_epochs_val_period=5,\n",
    "    d_model=16,\n",
    "    nhead=4,\n",
    "    num_encoder_layers=2,\n",
    "    num_decoder_layers=2,\n",
    "    dim_feedforward=128,\n",
    "    dropout=0.1,\n",
    "    random_state=42,\n",
    "    optimizer_kwargs={\"lr\": 1e-3},\n",
    "    save_checkpoints=True,\n",
    "    force_reset=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ccd2a30ded334bc2a68338f7a77bc6d0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/20 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training loss: 0.0120, validation loss: 0.0261, best val loss: 0.0261\r"
     ]
    }
   ],
   "source": [
    "my_model_sp.fit(series=train_sp_scaled, val_series=val_sp_scaled, verbose=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6c9ddc64cef3456ca178e1d7e99d9e49",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/49 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "91b880b55864475a9c7ae356917f3f9f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/49 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# this function is used to backtest the model at a forecasting horizon of three years (36 months)\n",
    "def backtest(testing_model):\n",
    "    # Compute the backtest predictions with the two models\n",
    "    pred_series = testing_model.historical_forecasts(\n",
    "        series=series_sp_scaled,\n",
    "        start=pd.Timestamp(\"19401001\"),\n",
    "        forecast_horizon=36,\n",
    "        stride=10,\n",
    "        retrain=False,\n",
    "        verbose=True,\n",
    "    )\n",
    "\n",
    "    pred_series_ets = ExponentialSmoothing().historical_forecasts(\n",
    "        series=series_sp_scaled,\n",
    "        start=pd.Timestamp(\"19401001\"),\n",
    "        forecast_horizon=36,\n",
    "        stride=10,\n",
    "        retrain=True,\n",
    "        verbose=True,\n",
    "    )\n",
    "    val_sp_scaled.plot(label=\"actual\")\n",
    "    pred_series.plot(label=\"our Transformer\")\n",
    "    pred_series_ets.plot(label=\"ETS\")\n",
    "    plt.legend()\n",
    "    print(\"Transformer MAPE:\", mape(pred_series, val_sp_scaled))\n",
    "    print(\"ETS MAPE:\", mape(pred_series_ets, val_sp_scaled))\n",
    "\n",
    "\n",
    "best_model_sp = TransformerModel.load_from_checkpoint(\n",
    "    model_name=\"sun_spots_transformer\", best=True\n",
    ")\n",
    "backtest(best_model_sp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
